package org.example.testcode.helper;

import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 商品列表搜索条件
 */
@Setter
@Getter
public class MallEsSearchFormDTO {

    /**
     * ES索引
     */
    private String index;

    /**
     * ES类型
     */
    private String type;

    /**
     * 关键字
     */
    private String keywords;

    /**
     * 用户的id,用于记录哪个用户的搜索数据
     */
    private String customerId;


    /**
     * 商品ID
     */
    private Long goodsId;

    private List<Long> goodsIds;

    /**
     * 商品编号
     */
    private String goodsNo;

    private List<String> goodsNos;

    /**
     * -1 查询所有上下架：是否上架 上架:0:     下架:1
     */
    private String goodsAdded;

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 商品副标题
     */
    private String goodsSubtitle;

    /**
     * 商品关键词
     */
    private String goodsKeywords;

    /**
     * 商品简介
     */
    private String goodsBrief;

    /**
     * 取货方式  0：快递  1：自提
     */
    private String isSelfPick;

    /**
     * 售卖方式   0：提前下单  1：非提前下单
     */
    private String sellType;

    /**
     * 是否包邮  1卖家包邮 0,买家自费',
     */
    private String isMailBuy;

    /**
     * 分类ID
     */
    private Long catId;

    /**
     * -1 查询所有（门店，平台）；是否门店 (0:平台  1:门店)  默认值门店：1
     */
    private String isStore;

    /**
     * 货品ID
     */
    private Long goodsInfoId;

    /**
     * 货号(scm物料编码)
     */
    private String goodsInfoItemNo;

    /**
     * 货号
     */
    private List<String> goodsInfoItemNos;

    /**
     * 货品名称
     */
    private String goodsInfoName;
    /**
     * 货品副标题
     */
    private String goodsInfoSubtitle;
    /**
     * 货品规格
     */
    private String goodsInfoSpec;

    /**
     * 是否上架  -1：所有 下架:0: 上架:1
     */
    private String goodsInfoAdded;

    /**
     * 上架 时间
     */
    private Date goodsInfoAddedTime;

    /**
     * 上架 时间排序 0倒序 1正序
     */
    private Integer goodsInfoAddedTimeSort;

    /**
     * 品牌名称
     */
    private String brandName;

    /**
     * 品牌ID
     */
    private Long brandId;

    /**
     *-1 查询所有; 1:默认显示的数据；0:所有-默认显示那条)
     */
    private String isShowDefault;

    /**
     * 是否开启价格判断（只展示价格大于0的货品）1:开启 0：不开启
     */
    private String priceFlag;

    /**
     * 货品是否删除  1 删除，0/null 没有删除, -1 所有数据
     */
    private String goodsInfoDelflag;

    /**
     * 是否启用
     */
    private String enable;


    /**
     * 仓库ID列表
     */
    private Long[] wareIds;

    /**
     * 货品IDS
     */
    private List<Long> goodsInfoIds;

    /**
     * 属性参数，形式----> [产地:中国],[产地:美国],[材质:陶瓷]
     */
    private String[] params;

    /**
     * 多个品牌名称
     */
    private String[] brands;

    /**
     * 多个品牌ID
     */
    private Long[] brandIds;

    /**
     * 剔除品牌ID
     */
    private List<Long> excludeBrandIds;

    /**
     * 是否第三方  0 自营 ， 1 第三方
     */
    private String isThird;

    /**
     * 手机端显示
     */
    private String showMobile;

    /**
     * 排序列表
     */
    private String sort;

    /**
     * 店铺编号
     */
    private Long storeId;

    /**
     * 仅显示有货,0过滤调无库的商品
     */
    private String showStock;

    /**
     * boss目录编号
     */
    private String cid;

    /**
     * boss批量平台分类编号,与权限有关
     */
    String[] cids;

    /**
     * 最低价
     */
    private String priceMin;

    /**
     * 最高价
     */
    private String priceMax;

    /**
     * 第三方店铺商品分类
     */
    private String thirdCateId;

    /**
     * 第三方店铺商品分类多个ID
     */
    private String[] thirdCats;

    /**
     * 优惠
     */
    private BigDecimal discount;

    /**
     * 聚合类型
     * null：list和aggs数据都要
     * 1:只要列表数据
     * 2:只要聚合数据
     */
    private Integer aggsType;

    /**
     * 默认是可以查看生产配套分类的
     */
    private boolean visitGcpt = true;

    /**
     * 默认只查询在列表中展示的
     */
    private boolean showList = true;

    /**
     * 构建商品价格，默认构建
     */
    private boolean buildPrice = true;

    /**
     * 商品展示位置  1:致爱商城 2:云订单 3:逛逛美家
     */
    private String goodsDisplayPoint;

    /**
     * 价格等级ID
     */
    private String priceGradeId;

    /**
     * 是否可访问结算价
     */
    public Boolean isVisitCostprice;

    /**
     * 灰度上架：0=否；1=是
     */
    private String alpha;

    /**
     * 需要直接切换到SCM报价的的机构id scmOrganId
     */
    private String scmOrganId;

    /**
     * 商品其他分类ID(对应：np_goods_category_other表id)
     */
    private List<Long> otherCateIds;

    /**
     * 显示SPU标记：0=否；1=是 （列表上只SPU，默认取一个货品并标记为1）
     */
    private String displaySpuFlag;

    /**
     * 促销标识，为1时只查询有抢购活动的货品
     */
    private String promotionFlag;

    /**
     * 营销活动展示渠道  1：pc端使用 2：h5使用 3：app使用 4:小程序,空为未配置
     */
    private String showChannel;

    /**
     * 参与促销等级编码
     */
    private String promotionGrade;

    //通过商品分组
    private Boolean groupGoodsId = false;

    private int pageSize = 10;
    private int pageNo = 1;

}
